typedef struct ListNode LTNode; 
bool hasCycle(struct ListNode *head) {
    LTNode* low = head;
    LTNode* fast = head;
    while (fast && fast->next)
    {
        low = low->next;
        fast = fast->next->next;
        if (low == fast)
            return true;
    } 
    return false; 
}